"""
减少特征的个数
效果: 特征与特征之间不相关
方法:
    1.特征选择 - 从原有特征中找出主要特征
    Filter(过滤式) - 探究特征本身特点,特征与特征和目标值之间的关联
        方差选择法: 低方差特征过滤
        相关系数
    Embedded(嵌入式) - 算法自动选择特征
        决策树: 信息熵,信息增益
        正则化: L1,L2
        深度学习: 卷积等
    2.主成分分析
"""
from sklearn.feature_selection import VarianceThreshold
from scipy.stats import pearsonr
# PCA的参数n_components,小数: 保留百分之多少的信息 整数: 减少到多少特征
from sklearn.decomposition import PCA

data = [
        [100, 200, 10,1],
        [150, 600, 15,1],
        [200, 400, 60,2]
    ]
def variance():
    transfer = VarianceThreshold(threshold=0)
    data_new = transfer.fit_transform(data)
    print(data_new)
def pearson():
    x = [1,2,3,5]
    y = [5,6,7,8]
    r = pearsonr(x,y)
    print(r)
def pca_demo():
    transfer = PCA(n_components=.5)
    data_new = transfer.fit_transform(data)
    print(data_new)
if __name__ == '__main__':
    pca_demo()